package com.zhihao.domain.strategy.service.rule.tree;

import com.zhihao.domain.strategy.service.rule.tree.factory.DefaultTreeFactory;

import java.util.Date;

/**
 * @author Jackson
 * @description 规则树接口
 * @create 2024-01-27 11:14
 */
public interface ILogicTreeNode {

    /**
     * 规则树节点的抽象执行逻辑接口---模板方法模式
     * @param userId 用户Id
     * @param strategyId 策略Id
     * @param awardId 奖品Id
     * @param ruleValue 规则树节点的分支判断值
     * @return 规则树的行为因子
     */
    DefaultTreeFactory.TreeActionEntity logic(String userId, Long strategyId, Integer awardId, String ruleValue, Date endDateTime);

}
